home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / fb386 / jimen / jimen.bas next >
BASIC Source File  |  1994-06-01  |  25KB  |  415 lines

  1. 100 '
  2. 110 '「私は、地面です。」
  3. 120 '松山 真也
  4. 130 '
  5. 140 'ニタイトルのデータ名        ニエンディングのデータ名
  6. 150 TI$="Q:\EARTH\TIK1.TIF"    :EN$="Q:\EARTH\TIK3.TIF"
  7. 160 TC=3                       :EC=10
  8. 170 'ニPCMのデータ名             ニFMのデータ名
  9. 180 PC$="Q:\FJ\\PCM\RYM_ALL5.PMB"  :FM$="Q:\FJ\FM\FM_1.FMB"
  10. 190 '
  11. 200 SCREEN@ 0:COLOR 7,0:CLS:RANDOMIZE TIME
  12. 210 MOUSE 0:MOUSE 3,0,8:MOUSE 4,32,0,256,255:TE=0:JI=1:H0=-1:H1=-1:TA=-1:STT=29:JJI=5
  13. 220 BGM 1:PLAY OFF:PART 0,6:PART 1,0:CD STOP:ST=0:AT=1:BT=1:CT=1:N=0:MO3=8
  14. 230 LOAD@ PC$:LOAD@ FM$
  15. 240 'キャラ
  16. 250 DIM A%(256),AA%(1024),B%(256),C%(256),BB0%(256),I0%(256),AMP(STT,15,13)
  17. 260 DIM BB1%(256),BB2%(256),J%(256),I1%(256),I2%(256),O%(256),MP(15,13),PA%(2560)
  18. 270 DIM I3%(256),I4%(256),I5%(256),I6%(256),II%(256),TS%(11088),TT%(11088),SO$(30),SST(STT)
  19. 280 SCREEN@ 1:LINE(0,0)-(15,7),PSET,[0,0,180],BF
  20. 290 LINE(0,0)-(15,0),PSET,[0,0,255]:LINE(0,0)-(0,7),PSET,[0,0,255]
  21. 300 LINE(0,7)-(15,7),PSET,[0,0,120]:LINE(15,0)-(15,7),PSET,[0,0,120]
  22. 310 GET@A(0,0)-(15,15),J%:CLS:SCREEN@ 0:GOSUB *CO
  23. 320 LINE(0,0)-(15,15),PSET,%11,BF
  24. 330 LINE(0,0)-(15,0),PSET,%12:LINE(0,0)-(0,15),PSET,%12
  25. 340 LINE(0,15)-(15,15),PSET,%10:LINE(15,0)-(15,15),PSET,%10
  26. 350 GET@A(0,0)-(15,15),BB0%:CLS
  27. 360 LINE(0,0)-(15,15),PSET,%8,BF
  28. 370 LINE(0,0)-(15,0),PSET,%9:LINE(0,0)-(0,15),PSET,%9
  29. 380 LINE(0,15)-(15,15),PSET,%7:LINE(15,0)-(15,15),PSET,%7
  30. 390 GET@A(0,0)-(15,15),BB1%:CLS
  31. 400 LINE(0,0)-(15,15),PSET,%5,BF
  32. 410 LINE(0,0)-(15,0),PSET,%6:LINE(0,0)-(0,15),PSET,%6
  33. 420 LINE(0,15)-(15,15),PSET,%4:LINE(15,0)-(15,15),PSET,%4
  34. 430 GET@A(0,0)-(15,15),BB2%:CLS
  35. 440 SCREEN@ 1:S=3.14159!/4/15
  36. 450 FOR I=15 TO 0 STEP -1
  37. 460 SS=15-I:C=COS(S*SS)*SIN(S*SS)*2*165+90
  38. 470 XY=15-(15-I)/2:CIRCLE(XY,XY),I,[0,0,C],,,,F
  39. 480 NEXT:GET@A(0,0)-(30,30),AA%:CLS:PUT@A(0,0)-(30,30),AA%,,.25!,.25!
  40. 490 GET@A(0,0)-(15,15),A%:CLS:SCREEN@ 0:GOSUB *CO
  41. 500 LINE(1,5)-(14,10),PSET,%2,BF
  42. 510 LINE(1,5)-(14,5),PSET,%3:LINE(1,5)-(1,10),PSET,%3
  43. 520 LINE(1,10)-(14,10),PSET,%1:LINE(14,5)-(14,10),PSET,%1
  44. 530 LINE(0,0)-(15,15),PSET,%15,B
  45. 540 GET@A(0,0)-(15,15),I0%
  46. 550 LINE(0,0)-(15,15),PSET,%14,B:GET@A(0,0)-(15,15),I1%:CLS
  47. 560 SYMBOL(0,0),"B",1,1,%3,,,1:LINE(0,0)-(15,15),PSET,%15,B
  48. 570 GET@A(0,0)-(15,15),I3%:CLS
  49. 580 SYMBOL(0,1),"R",1,1,%13,,,1:LINE(0,0)-(15,15),PSET,%15,B
  50. 590 GET@A(0,0)-(15,15),I4%:CLS
  51. 600 SYMBOL(0,1),"S",1,1,%11,,,1:LINE(0,0)-(15,15),PSET,%15,B
  52. 610 GET@A(0,0)-(15,15),I5%:CLS
  53. 620 SYMBOL(0,-3),"↓",1,1,%13,,,9:LINE(7,0)-(8,2),PSET,%0,BF
  54. 630 LINE(0,0)-(15,15),PSET,%15,B
  55. 640 GET@A(0,0)-(15,15),I2%:CLS
  56. 650 FOR I=0 TO 256
  57. 660 O%(I)=-32768
  58. 670 IF J%(I)=0 THEN J%(I)=-32768
  59. 680 IF A%(I)=0 THEN A%(I)=-32768:B%(I)=-32768:C%(I)=-32768:GOTO 700
  60. 690 B%(I)=A%(I)*32:C%(I)=A%(I)*1057
  61. 700 NEXT
  62. 710 DEF SPRITE 0,0,J%,1:DEF SPRITE 0,4,J%,1:DEF SPRITE 0,8,J%,1
  63. 720 DEF SPRITE 0,12,J%,1:DEF SPRITE 0,16,J%,1:DEF SPRITE 0,20,J%,1
  64. 730 DEF SPRITE 0,24,J%,1:DEF SPRITE 0,28,J%,1:DEF SPRITE 0,32,J%,1
  65. 740 DEF SPRITE 0,36,J%,1:DEF SPRITE 0,40,J%,1:DEF SPRITE 0,44,J%,1
  66. 750 DEF SPRITE 0,48,J%,1:DEF SPRITE 0,52,J%,1:DEF SPRITE 0,56,J%,1
  67. 760 DEF SPRITE 0,60,J%,1:DEF SPRITE 0,64,O%,1:DEF SPRITE 0,68,O%,1
  68. 770 DEF SPRITE 0,72,O%,1:DEF SPRITE 0,76,O%,1:DEF SPRITE 0,80,O%,1
  69. 780 DEF SPRITE 0,84,O%,1:DEF SPRITE 0,88,O%,1:DEF SPRITE 0,92,O%,1
  70. 790 DEF SPRITE 0,96,O%,1:DEF SPRITE 0,100,O%,1:DEF SPRITE 0,104,O%,1
  71. 800 DEF SPRITE 0,108,O%,1:DEF SPRITE 0,112,O%,1:DEF SPRITE 0,116,O%,1
  72. 810 DEF SPRITE 0,120,O%,1:DEF SPRITE 0,124,A%,1:DEF SPRITE 0,128,B%,1
  73. 820 DEF SPRITE 0,132,C%,1:DEF SPRITE 1,0,(112,212),56,16,1
  74. 830 DEF SPRITE 1,16,(124,204),124,1,1
  75. 840 '
  76. 850 LINE(0,0)-(111,98),PSET,%11,BF
  77. 860 LINE(8,8)-(103,90),PSET,%0,BF
  78. 870 LINE(0,0)-(111,98),PSET,%12,B
  79. 880 LINE(7,7)-(104,91),PSET,%10,B
  80. 890 LINE(111,0)-(111,98),PSET,%10
  81. 900 LINE(111,98)-(0,98),PSET,%10
  82. 910 LINE(104,7)-(104,91),PSET,%12
  83. 920 LINE(104,91)-(7,91),PSET,%12
  84. 930 SYMBOL(13,8),"BALL SELECT",.5!,1,%3
  85. 940 SYMBOL(40,34),"B",1,1,%3,,,1:SYMBOL(40,52),"R",1,1,%13,,,1
  86. 950 SYMBOL(40,70),"S",1,1,%11,,,1
  87. 960 SYMBOL(56,34),"×",1,1,%12,,,1
  88. 970 SYMBOL(56,52),"×",1,1,%12,,,1
  89. 980 SYMBOL(56,70),"×",1,1,%12,,,1
  90. 990 GET@A(0,0)-(111,98),TS%:CLS:SPRITE ON:SPRITE SCREEN(64,0)
  91. 1000 '
  92. 1010 FOR I=0 TO 14:SO$(I)="%L"+STR$(15-I):NEXT
  93. 1020 FOR I=16 TO 30:SO$(I)="%R"+STR$(I-15):NEXT:SO$(15)="%C"
  94. 1030 '面DATAをREAD
  95. 1040 RESTORE 2750:FOR M=0 TO (STT+1)/3-1:FOR Y=0 TO 13:FOR I=0 TO 2
  96. 1050 READ A$:FOR X=0 TO 15:A=VAL(MID$(A$,X+1,1))
  97. 1060 AMP(M*3+I,X,Y)=A:NEXT X,I,Y,M:GOSUB *TITLE
  98. 1070 '画面表示
  99. 1080 LINE(24,12)-(295,240),PSET,%11,BF
  100. 1090 LINE(24,12)-(295,240),PSET,%12,B
  101. 1100 LINE(31,19)-(288,240),PSET,%10,B
  102. 1110 LINE(295,12)-(295,240),PSET,%10
  103. 1120 LINE(288,20)-(288,240),PSET,%12,BF
  104. 1130 LINE(32,20)-(287,240),PSET,%0,BF
  105. 1140 NN=0:FOR Y=0 TO 13:FOR X=0 TO 15:A=AMP(SST(ST)-1,X,Y):MP(X,Y)=A
  106. 1150 ON A GOSUB 1160,1170,1180,1190,1200,1210,1220,1230,1240:GOTO 1260
  107. 1160 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB1%:NN=NN+1:RETURN
  108. 1170 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:NN=NN+1:RETURN
  109. 1180 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=10:RETURN
  110. 1190 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=11:RETURN
  111. 1200 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=12:RETURN
  112. 1210 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=13:RETURN
  113. 1220 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=14:RETURN
  114. 1230 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB2%:MP(X,Y)=15:RETURN
  115. 1240 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB0%:RETURN
  116. 1250 PUT@A(X*16+32,Y*16+20)-(X*16+47,Y*16+35),BB0%:RETURN
  117. 1260 NEXT X,Y:GOTO *TSELECT
  118. 1270 '初期設定
  119. 1280 MOUSE 4,32,0,31+(15-JI)*16,255:MOUSE 1,(15-JI)*8+32
  120. 1290 CO=10:CC=.4!:HA=0:IF TA=-1 THEN TYY=-2 ELSE TYY=-4.3!
  121. 1300 '
  122. 1310 '玉発射
  123. 1320 M=MOUSE(9):SPRITE 6,0,M:SPRITE 6,16,M:MM0=MOUSE(2,0):MM1=MOUSE(2,1)
  124. 1330 IF MM0=-1 THEN TXX=-1 ELSE IF MM1=-1 THEN TXX=1 ELSE 1320
  125. 1340 '地面移動
  126. 1350 SPRITE 6,0,MOUSE(9)
  127. 1360 '玉移動
  128. 1370 TX=SPRITE(16,6):TY=SPRITE(16,7):XA=INT((TX+4)/16):YA=INT((TY-16)/16)
  129. 1380 IF TX+TXX<0 OR TX+TXX>246 THEN TXX=-TXX:PLAY OFF:PLAY ,"@73G16"
  130. 1390 IF TY+TYY<20 THEN TYY=-TYY:PLAY OFF:PLAY ,"@73G16"
  131. 1400 IF TXX>0 THEN 1580
  132. 1410 A=INT((TX+TXX)/16)
  133. 1420 ON MP(A,YA) GOSUB 1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570:SPRITE 6,16,TXX:GOTO 1600
  134. 1430 TXX=H0*TXX:TE=TE+ABS(TYY)*5:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:N=N+1:PLAY OFF:PLAY "@1>C16<":RETURN
  135. 1440 TXX=H1*TXX:TE=TE+ABS(TYY)*5:MP(A,YA)=1:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%:PLAY OFF:PLAY "@1C16":RETURN
  136. 1450 TXX=-TXX:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:IF JI=JJI THEN RETURN ELSE PLAY OFF:PLAY ,"@73C16D16":JI=JI+1:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
  137. 1460 TXX=-TXX:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:IF JI=0 THEN RETURN ELSE PLAY OFF:PLAY ,"@73D16C16":JI=JI-1:HA=0:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
  138. 1470 TXX=-TXX:TA=-TA:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN *GG
  139. 1480 TXX=-TXX:AT=AT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  140. 1490 TXX=-TXX:BT=BT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  141. 1500 TXX=-TXX:CT=CT+1:MP(A,YA)=0:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  142. 1510 TXX=-TXX:PLAY OFF:PLAY ,"@73G16":RETURN
  143. 1520 TXX=-TXX:MP(A,YA)=3:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I0%:PLAY OFF:PLAY "@1C16":RETURN
  144. 1530 TXX=-TXX:MP(A,YA)=4:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I1%:PLAY OFF:PLAY "@1C16":RETURN
  145. 1540 TXX=-TXX:MP(A,YA)=5:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I2%:PLAY OFF:PLAY "@1C16":RETURN
  146. 1550 TXX=-TXX:MP(A,YA)=6:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I3%:PLAY OFF:PLAY "@1C16":RETURN
  147. 1560 TXX=-TXX:MP(A,YA)=7:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I4%:PLAY OFF:PLAY "@1C16":RETURN
  148. 1570 TXX=-TXX:MP(A,YA)=8:PUT@A(A*16+32,YA*16+20)-(A*16+47,YA*16+35),I5%:PLAY OFF:PLAY "@1C16":RETURN
  149. 1580 A=INT((TX+TXX+7)/16)
  150. 1590 ON MP(A,YA) GOSUB 1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570:SPRITE 6,16,TXX
  151. 1600 IF TYY>0 THEN 1780
  152. 1610 A=INT((TY+TYY-20)/16)
  153. 1620 ON MP(XA,A) GOSUB 1630,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1760,1770:GOTO 1800
  154. 1630 TYY=H0*TYY:TE=TE+ABS(TYY)*5:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:N=N+1:PLAY OFF:PLAY "@1>C16<":RETURN
  155. 1640 TYY=H1*TYY:TE=TE+ABS(TYY)*5:MP(XA,A)=1:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%:PLAY OFF:PLAY "@1C16":RETURN
  156. 1650 TYY=-TYY:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:IF JI=JJI THEN RETURN ELSE PLAY OFF:PLAY ,"@73C16D16":JI=JI+1:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
  157. 1660 TYY=-TYY:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:IF JI=0 THEN RETURN ELSE PLAY OFF:PLAY ,"@73D16C16":JI=JI-1:HA=0:SPRITE 1,0,(15-JI)*4:MOUSE 4,32,0,(15-JI)*16+31,255:RETURN
  158. 1670 TYY=-TYY:TA=-TA:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN *GG
  159. 1680 TYY=-TYY:AT=AT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  160. 1690 TYY=-TYY:BT=BT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  161. 1700 TYY=-TYY:CT=CT+1:MP(XA,A)=0:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),BB1%,PRESET:PLAY OFF:PLAY ,"@73C16D16":RETURN
  162. 1710 TYY=-TYY:PLAY OFF:PLAY ,"@73G16":RETURN
  163. 1720 TYY=-TYY:MP(XA,A)=3:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I0%:PLAY OFF:PLAY "@1C16":RETURN
  164. 1730 TYY=-TYY:MP(XA,A)=4:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I1%:PLAY OFF:PLAY "@1C16":RETURN
  165. 1740 TYY=-TYY:MP(XA,A)=5:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I2%:PLAY OFF:PLAY "@1C16":RETURN
  166. 1750 TYY=-TYY:MP(XA,A)=6:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I3%:PLAY OFF:PLAY "@1C16":RETURN
  167. 1760 TYY=-TYY:MP(XA,A)=7:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I4%:PLAY OFF:PLAY "@1C16":RETURN
  168. 1770 TYY=-TYY:MP(XA,A)=8:PUT@A(XA*16+32,A*16+20)-(XA*16+47,A*16+35),I5%:PLAY OFF:PLAY "@1C16":RETURN
  169. 1780 A=INT((TY+TYY-13)/16):IF MP(XA,A)>0 AND TA=1 THEN TYY=TYY/1.1!
  170. 1790 ON MP(XA,A) GOSUB 1630,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1760,1770
  171. 1800 '重力のやつ
  172. 1810 IF TA=-1 THEN SPRITE 6,16,,TYY:GOTO 1830 
  173. 1820 TYY=TYY+.05!:SPRITE 6,16,,TYY
  174. 1830 'はね返す
  175. 1840 TY=SPRITE(16,7):IF TY<206 THEN 1930
  176. 1850 IF TY>228 THEN 1890
  177. 1860 TX=SPRITE(16,6):X=SPRITE(0,6)
  178. 1870 IF TX-X>-5 AND TX-X<JI*16+13 AND TY<220 THEN HA=HA+1:IF TA=1 THEN HA=0:TYY=-4.3! ELSE TYY=-ABS(TYY) ELSE 1930
  179. 1880 SPRITE 6,16,,-4:PLAY OFF:PLAY "@7>C16<":TXX=CINT((TX-X-4-JI*8)/(5.3!+JI*.8!)):IF TXX=0 THEN TXX=-1+INT(RND*2)*2:GOTO 1930 ELSE 1930
  180. 1890 JI=1:HA=0:TXX=1:TYY=1:PLAY OFF:PLAY ">@6C1<":IF AT+BT+CT=1 THEN *END
  181. 1900 IF H0=-1 AND H1=-1 THEN AT=AT-1 ELSE IF H0=-1 AND H1=1 THEN BT=BT-1 ELSE CT=CT-1
  182. 1910 SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):SPRITE 6,0,112-SPRITE(0,6)
  183. 1920 TA=-1:SPRITE 1,0,56:MOUSE 4,32,0,254,255:WAIT 200:GOTO *TSELECT
  184. 1930 '
  185. 1940 G$=INKEY$:IF G$="G" OR G$="g" THEN 1890 ELSE IF G$="P" OR G$="p" THEN GOSUB *PAUSE
  186. 1950 '
  187. 1960 TX=SPRITE(16,6):SS=INT((TX)/8.1!)
  188. 1970 IF SS<>SSS THEN PLAY OFF:PLAY SO$(SS),SO$(SS):SSS=SS
  189. 1980 '
  190. 1990 IF TA=-1 THEN IF JI>0 THEN IF HA>(16-JI)*5 THEN HA=0:GOSUB *SP
  191. 2000 GOSUB *CO2:FOR I=0 TO (JJI-JI+1)*8:NEXT:IF N=NN THEN *CLEAR ELSE 1340
  192. 2010 *TITLE:OUT &H440,27:OUT &H442,0:SPRITE OFF
  193. 2020 SCREEN@ 1:LOAD@ TI$,(-15,3)
  194. 2030 SYMBOL(48,60),"私も、地面です。",2,4,[0,100,255],,,9
  195. 2040 SYMBOL(98,180),"マウスの左ボタンを押して下さい。",.5!,1,[255,120,0],,,8:CD PLAY TC
  196. 2050 WHILE MOUSE(2,0)=0:WEND:GOSUB *RR:SCREEN@ 0:GOSUB *SC:GOSUB *CO
  197. 2060 *JSP
  198. 2070 MOUSE 4,32,0,254,255:CLS:CD STOP:MOUSE 1,144:X=112:XX=MOUSE(9):SPRITE 0,0,1
  199. 2080 SYMBOL(16,100),"地面の速さ"+AKCNV$(STR$(256-MO3)),2,3,%3,,,1:CD PLAY 7
  200. 2090 M1=MOUSE(2,0):M2=MOUSE(2,1):XX=MOUSE(9):SPRITE 6,0,XX
  201. 2100 IF M1=-1 AND M2=-1 THEN 2160
  202. 2110 IF MO3=1 AND M1=-1 OR MO3=255 AND M2=-1 THEN 2090
  203. 2120 IF M2=-1 THEN MO3=MO3+1 ELSE IF M1=-1 THEN MO3=MO3-1 ELSE 2090
  204. 2130 MOUSE 3,0,MO3:LINE(208,100)-(304,148),PSET,0,BF
  205. 2140 A$=AKCNV$(STR$(256-MO3)):SYMBOL(176,100),A$,2,3,%3,,,1
  206. 2150 GOTO 2090
  207. 2160 SPRITE 0,0,0:SPRITE 6,0,112-SPRITE(0,6):CD STOP:CLS:RETURN 1070
  208. 2170 *GG:IF TA=-1 THEN TYY=-2 ELSE TYY=-4.3!
  209. 2180 HA=0:SPRITE 6,16,SPRITE(0,6)+JI*8+4-SPRITE(16,6),204-SPRITE(16,7):GOTO 1310
  210. 2190 *CLEAR
  211. 2200 IF ST=STT THEN *ENDING ELSE ST=ST+1:PLAY OFF:SYMBOL(120,104),"CLEAR",1,2,%13,,,9:CD PLAY 10
  212. 2210 CDSTAT CC%:IF CC%(1)=0 OR MOUSE(2,0)=-1 THEN 2220 ELSE 2210
  213. 2220 CD STOP:TXX=1:TYY=2:SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,0,(15-JI)*8-SPRITE(0,6):SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):N=0:GOTO 1070
  214. 2230 *SP:IF ABS(TYY)<5 THEN IF TYY<0 THEN TYY=TYY-1 ELSE TYY=TYY+1
  215. 2240 RETURN
  216. 2250 *TSELECT:GET@A(104,71)-(215,169),TT%:MY=0:MYY=0
  217. 2260 PUT@A(104,71)-(215,169),TS%:MOUSE 1,,0:MOUSE 3,1,4
  218. 2270 SYMBOL(160,105),AKCNV$(STR$(AT)),1,1,%12,,,1
  219. 2280 SYMBOL(160,123),AKCNV$(STR$(BT)),1,1,%12,,,1
  220. 2290 SYMBOL(160,141),AKCNV$(STR$(CT)),1,1,%12,,,1:GOTO 2310
  221. 2300 MYY=MY:MY=INT(MOUSE(1)/86):IF MOUSE(2,0)=-1 THEN 2330 ELSE IF MY=MYY THEN 2300
  222. 2310 LINE(127,MYY*18+105)-(142,MYY*18+120),PSET,0,BF:SYMBOL(127,MY*18+105),"→",1,1,%13,,,1
  223. 2320 GOTO 2300
  224. 2330 IF MY=0 AND AT=0 OR MY=1 AND BT=0 OR MY=2 AND CT=0 THEN BEEP:GOTO 2300
  225. 2340 IF MY=0 THEN H0=-1:H1=-1:SPRITE 1,16,124 ELSE IF MY=1 THEN H0=-1:H1=1:SPRITE 1,16,128 ELSE H0=1:H1=-1:SPRITE 1,16,132
  226. 2350 SPRITE 0,16,1:SPRITE 0,0,1:WAIT 50
  227. 2360 PUT@A(104,71)-(215,169),TT%:GOSUB *GI:GOTO 1270
  228. 2370 *END:WAIT 200:PLAY OFF:SYMBOL(88,104),"GAME  OVER",1,2,%13,,,9:SYMBOL(80,140),"SCORE"+STR$(TE),2,1,%12,,,8:CD PLAY 9
  229. 2380 IF MOUSE(2,0)=-1 THEN CD STOP:CON=1:SST=ST ELSE IF MOUSE(2,1)=-1 THEN CD STOP:CON=0 ELSE 2380 
  230. 2390 SPRITE 0,0,0:SPRITE 0,16,0:SPRITE 6,0,112-SPRITE(0,6):SPRITE 6,16,124-SPRITE(16,6),204-SPRITE(16,7):SPRITE 1,0,56:SPRITE 1,16,124:AT=1:BT=1:CT=1:TE=0:H0=-1:H1=-1:ST=0:N=0:TA=-1
  231. 2400 IF CON=1 THEN *CONTINUE ELSE GOSUB *TITLE
  232. 2410 *CONTINUE:LINE(32,20)-(287,239),PSET,0,BF:ST=SST:GOSUB *JSP
  233. 2420 *ENDING:CLS:SPRITE 0,0,0:SPRITE 0,16,0:ST=0:OUT &H440,27:OUT &H442,0
  234. 2430 SPRITE OFF:SCREEN@ 1:LOAD@ EN$:CD PLAY EC
  235. 2440 SYMBOL(16,80),"おめでとう!",3,5,[0,255,0],,,9
  236. 2450 CDSTAT CC%:IF CC%(1)=0 THEN CLS:GOTO *END ELSE 2450
  237. 2460 *PAUSE:GET@A(120,104)-(199,135),PA%:SYMBOL(120,104),"PAUSE",1,2,%13,,,9
  238. 2470 IF INKEY$<>" " THEN 2470
  239. 2480 PUT@A(120,104)-(199,135),PA%:RETURN
  240. 2490 *GI
  241. 2500 IF INKEY$="" THEN RETURN ELSE 2500
  242. 2510 *SC
  243. 2520 SPRITE ON:SPRITE SCREEN(64,0):RESTORE 2540:FOR I=0 TO 4:READ A,B,C:OUT &H440,A:OUT &H442,B
  244. 2530 OUT &H443,C:NEXT
  245. 2540 DATA 11,172,0, 12,202,2, 14,6,4, 16,6,4, 27,17,17  
  246. 2550 RETURN
  247. 2560 *CO'色設定
  248. 2570 RESTORE 2580:FOR I=1 TO 15:READ C0,C1,C2:PALETTE I,[C0,C1,C2]:NEXT
  249. 2580 DATA 0,0,120, 0,0,180, 0,0,255, 120,0,0, 180,0,0, 255,0,0, 120,120,0
  250. 2590 DATA 180,180,0, 255,255,0, 120,120,120, 180,180,180, 255,255,255
  251. 2600 DATA 0,255,0, 0,255,0, 0,0,255
  252. 2610 RETURN 
  253. 2620 *CO2
  254. 2630 CO=CO+CC:IF INT(CO)=12 OR INT(CO)=1 THEN CC=-CC
  255. 2640 PALETTE 15,[INT(CO)*16-16,0,255]:PALETTE 14,[192-INT(CO)*16,255,0]
  256. 2650 RETURN
  257. 2660 *RR
  258. 2670 FOR I=0 TO STT-1
  259. 2680 SS=INT(RND*(STT-I+1)):IF I=STT-1 AND SS=0 THEN 2720 ELSE IF SS=0 THEN 2680 ELSE KK=0:J=0
  260. 2690 IF SST(J)=0 THEN KK=KK+1
  261. 2700 IF SS<>KK THEN J=J+1:GOTO 2690
  262. 2710 SST(J)=I+1
  263. 2720 NEXT:FOR I=0 TO STT-1:IF SST(I)=0 THEN SST(I)=STT
  264. 2730 NEXT:SST(STT)=STT+1:RETURN
  265. 2740 'DATA
  266. 2750 DATA 5000000000000005,0000000000000000,0000000000000004
  267. 2760 DATA 0602000000004040,0049000000009400,0812121212121212
  268. 2770 DATA 0999900000099990,1111111571111111,0000000000000000
  269. 2780 DATA 0000001111000000,0000009999000000,2121212121212150
  270. 2790 DATA 2222000000002222,3200001111000011,0000000000000000
  271. 2800 DATA 0000099229900000,1111000000001111,0312121212121212
  272. 2810 DATA 0012121212121200,9299000110009939,0000000000000000
  273. 2820 DATA 0021212121212100,1111110000111111,2121212121212170
  274. 2830 DATA 2222000550002222,2222222222222222,0000000000000000
  275. 2840 DATA 3312000000002133,0000000000000000,0312121212121214
  276. 2850 DATA 9999000000009999,0000001111000000,0000000000000000
  277. 2860 DATA 0009000000009000,1000000000000001,0000000000000000
  278. 2870 DATA 0000000000000000,0000000000000000,0000000000000000
  279. 2880 DATA 0000000000000000,9990000000000999,0000000000000000
  280. 2890 '
  281. 2900 DATA 4320000000000136,0000000000000454,2222222222222222
  282. 2910 DATA 4320000000000134,0212121212121215,2111111111111112
  283. 2920 DATA 2220092442900112,0921212121212121,2123000000003212
  284. 2930 DATA 0000009219000000,0112121212121212,2122000000002212
  285. 2940 DATA 0111109129011110,0921212991212121,2122222222222212
  286. 2950 DATA 0000094554900000,0212121992121212,2130110760110312
  287. 2960 DATA 0000000110000000,0921212121212127,2100220550220012
  288. 2970 DATA 0090001221000900,0112121212121218,2100000990000012
  289. 2980 DATA 0001012222101000,0919291929493969,2100990000990012
  290. 2990 DATA 0000921991290000,0000000000000000,2100000000000012
  291. 3000 DATA 0000000000000000,0000000000000000,2000000000000002
  292. 3010 DATA 0000000000000000,0000000000000000,2000000000000002
  293. 3020 DATA 0000000000000000,0000000000000000,0000000000000000
  294. 3030 DATA 0030000000000400,0000000000000000,3944444874444493
  295. 3040 '
  296. 3050 DATA 9922222442222299,1202101202101209,0000000000000000
  297. 3060 DATA 9900005115000099,2101202101202109,0222222222222220
  298. 3070 DATA 1030000110000301,0000000010000000,0200000000000020
  299. 3080 DATA 1009090220909001,0210120000021012,0200111111110020
  300. 3090 DATA 1000100220010001,0120210222012021,0200113333110020
  301. 3100 DATA 1009090330909001,0000000282000000,0200113333110020
  302. 3110 DATA 2222322442232222,1305209222907209,0200113333110020
  303. 3120 DATA 2244111331114422,4102409000902109,0200113333110020
  304. 3130 DATA 1111222211112222,0010010000010010,0200111111110020
  305. 3140 DATA 0000000000000000,0000000000000000,0200000000000020
  306. 3150 DATA 0000000000000000,0000000000000000,0292929229292920
  307. 3160 DATA 0000000000000000,0000000000000000,0000000000000000
  308. 3170 DATA 0000000000000000,0000000000000000,0000000000000000
  309. 3180 DATA 4406600990066044,0000000000000000,9444444994444449
  310. 3190 '
  311. 3200 DATA 1212121212121212,3212121442121215,2000000990000002
  312. 3210 DATA 1700223546220042,1700000000000062,0000000990000000
  313. 3220 DATA 1200222222220022,2099999229999901,0000000000000000
  314. 3230 DATA 1020000000000202,1091212112121902,1111111111111111
  315. 3240 DATA 1509999119999042,2092100000012901,6434343434343436
  316. 3250 DATA 1020000000000202,1091099229901902,6343434343434346
  317. 3260 DATA 1300000000000032,2092092222901901,3434343434343434
  318. 3270 DATA 1222222211111112,1091093333901902,3333333333333333
  319. 3280 DATA 1111111552222222,2092294444922901,4545454545454545
  320. 3290 DATA 1000000000000002,1000090000900002,9494949494949494
  321. 3300 DATA 1000000000000002,0000000000000000,0000000000000000
  322. 3310 DATA 1000000000000002,0000000000000000,0000000000000000
  323. 3320 DATA 0000000000000000,0000000000000000,0000000000000000
  324. 3330 DATA 4505454004545054,8300000440000038,0044004400440044
  325. 3340 '
  326. 3350 DATA 9000000000000009,8000000000000000,3403333333333034
  327. 3360 DATA 0092191212324100,0902222222111991,4403400000043033
  328. 3370 DATA 0010000000000500,0000000000000091,0000009999000000
  329. 3380 DATA 9090942129190909,2121212121212191,0205009449005020
  330. 3390 DATA 0020200000090200,0205020502030491,0209900000099020
  331. 3400 DATA 0010303000010100,0101010101010191,0201111221111020
  332. 3410 DATA 9020402917920209,2030203020202091,0200000000000020
  333. 3420 DATA 0010100000000100,1010101010101091,0202932112392020
  334. 3430 DATA 0020592315219200,6399449922994491,2200992992990034
  335. 3440 DATA 9010000000000009,3422222222222291,0000000000000000
  336. 3450 DATA 0000000000000000,0000000000000000,2222002222002222
  337. 3460 DATA 0000000000000000,0000000000000000,0000000000000000
  338. 3470 DATA 0000000000000000,0000000000000000,0000000000000000
  339. 3480 DATA 0000000000000000,0000000000000000,0000000000000000
  340. 3490 '
  341. 3500 DATA 2222222225522220,9920001221001093,0002000012001131
  342. 3510 DATA 2000000000000000,3940009209001099,0422122202201231
  343. 3520 DATA 0912222322222390,0020209029001002,0402000200201231
  344. 3530 DATA 0910000000000090,2030209109001000,0402090230401221
  345. 3540 DATA 0913344334433490,2020209019314111,0202090200401221
  346. 3550 DATA 0910000000000090,2030409209001000,0202090222001221
  347. 3560 DATA 0912222222222290,5030409029001022,0202892000001221
  348. 3570 DATA 0910000000000094,0020204322234992,0200999999901221
  349. 3580 DATA 7212222222222223,0020000001000000,0200490000002221
  350. 3590 DATA 9911111111111199,9999999999000000,0220000222022221
  351. 3600 DATA 0000000000000000,0000000000000000,0222522222222221
  352. 3610 DATA 0000000000000000,0000000000000000,0000000000000000
  353. 3620 DATA 0000000000000000,0000000000000000,0000000000000000
  354. 3630 DATA 0000000000000000,4045040455000000,0000000000000000
  355. 3640 '
  356. 3650 DATA 1111111111111111,3000000000000003,2000000000000002
  357. 3660 DATA 1236222222225321,2200000320000022,2200000000000022
  358. 3670 DATA 1242222222222421,2220000230000222,2420000000000232
  359. 3680 DATA 1220111111110221,2220000000000222,2432999999992432
  360. 3690 DATA 1220022222200221,2220002222000222,2244200990024432
  361. 3700 DATA 1220004334000221,2220002002000222,2223320990224432
  362. 3710 DATA 1220900440090221,2220022002200222,2252439999223432
  363. 3720 DATA 1220000000000221,0000222222220000,2222342992224432
  364. 3730 DATA 1200999999990021,0099999999999900,2444342992224432
  365. 3740 DATA 9000000000000009,1111111111111111,2222222992222222
  366. 3750 DATA 0000000000000000,0000002432000000,0000000530000000
  367. 3760 DATA 9999000000009999,0000000000000000,0000000000000000
  368. 3770 DATA 0000000000000000,0000000000000000,0000000000000000
  369. 3780 DATA 0000000000000000,0000000000000000,0000000000000000
  370. 3790 '
  371. 3800 DATA 7222222222222200,9111111111111119,0122244999022124
  372. 3810 DATA 0020000000000000,1111111111111111,0200244449000500
  373. 3820 DATA 0033222222222229,1111111111111111,0200999909990600
  374. 3830 DATA 0000000000000100,1111111111111111,2110980000790121
  375. 3840 DATA 0099999999999400,1111111991111111,0020900000090202
  376. 3850 DATA 0020000000000000,1111111991111111,0210933333390202
  377. 3860 DATA 0032222334434349,1111111111111111,0020967887690202
  378. 3870 DATA 0000000000000000,1111111111111111,0210999999990202
  379. 3880 DATA 4999999999999900,1111111111111111,0020000002000200
  380. 3890 DATA 4444444444444511,9111111111111119,0213341221222100
  381. 3900 DATA 0000000000000000,4334433854433443,0000004000000000
  382. 3910 DATA 0000000000000000,0000000000000000,0000000000000000
  383. 3920 DATA 0000000000000000,0000000000000000,0000000000000000
  384. 3930 DATA 0000000000000000,0000000000000000,0000000000000000
  385. 3940 '
  386. 3950 DATA 0000000000000000,0000000000000000,0000003003000000
  387. 3960 DATA 5022222222222990,0999999439999990,2222599009952222
  388. 3970 DATA 0000000000020590,0900000000000090,0000009229000000
  389. 3980 DATA 0122221222210590,0902432992342090,2299999229999922
  390. 3990 DATA 0200002000000590,0901010000101090,0090000000000900
  391. 4000 DATA 0122121099999990,0903042552304090,4397999999998934
  392. 4010 DATA 0200200090043330,0904000110003090,0090000000000900
  393. 4020 DATA 0202122093999999,0902500110052090,5599999339999955
  394. 4030 DATA 0122122290000000,0900030000400090,2222219339122222
  395. 4040 DATA 0000000099999990,0999999009999990,0000000000000000
  396. 4050 DATA 0000000000000092,0000000000000000,0000000000000000
  397. 4060 DATA 0000000000000000,0000000000000000,0000000000000000
  398. 4070 DATA 0000000000000000,0000000000000000,0000000000000000
  399. 4080 DATA 0000000000000000,0000000000000000,0000000000000000
  400. 4090 '
  401. 4100 DATA 4444444444444444,0000000000000000,6222222222222226
  402. 4110 DATA 0000000000000000,0999999999999990,1919191919191919
  403. 4120 DATA 0000009009000000,0111111111111114,2222222222222222
  404. 4130 DATA 1111119009222222,0939999999999999,1919191919191919
  405. 4140 DATA 1111119009222222,0911111111111111,5555555555555555
  406. 4150 DATA 1111119009222222,0999999999999994,2929292929292929
  407. 4160 DATA 1111119559222222,0911111111111111,6373836373836373
  408. 4170 DATA 1111115005222222,0939999999999999,1919191919191919
  409. 4180 DATA 1111115005222222,0911111111111115,3333333333333333
  410. 4190 DATA 4444445005444444,5999999999999992,1919191919191919
  411. 4200 DATA 9999999009999999,0555555555555555,3333333333333333
  412. 4210 DATA 0000000000000000,0333333333333333,0000000000000000
  413. 4220 DATA 0000000000000000,0000000000000000,0000000000000000
  414. 4230 DATA 0000000000000000,0000000000000000,0000000000000000
  415.